import socketserver


class RequestHandle(socketserver.BaseRequestHandler):
    def handle(self):

        re_data = self.request[0]  # 返回结果是一个元组(客户端发送的二进制数据,socket对象用于给客户端回数据)
        re_user = self.request[1]
        dx_addr = self.client_address

        print(dx_addr, "已上线")
        print(f"{dx_addr}发来数据：{re_data}")
        # 给客户端发送数据
        re_user.sendto("ok".encode("utf-8"), dx_addr)

        # 7.关闭服务
        print(f'{dx_addr}退出连接！！！')


sk = socketserver.ThreadingUDPServer(("127.0.0.1", 5000), RequestHandle)
sk.serve_forever()  # 每获取一个连接对象都会启动一个线程去服务
